
#ifndef __SYSTYPES_H__
#define __SYSTYPES_H__

#ifdef __cplusplus
extern "C" {
#endif

typedef	char						T_BYTE;     /*8-bit signed integer */
typedef  unsigned char					T_UBYTE;    /*8-bit unsigned integer */

typedef	signed short					T_HWORD;    /*16-bit signed integer */
typedef	unsigned short					T_UHWORD;   /*16-bit unsigned integer */

typedef	signed int						T_WORD;     /*32-bit signed integer */
typedef  unsigned int					T_UWORD;    /*32-bit unsigned integer */
typedef char                            T_CHAR;

/**********************************************
 *  When in VC enviroment:
 *    typedef LONGLONG    T_DWORD;
 *    typedef ULONGLONG   T_UDWORD;
 *
 **********************************************/
typedef	signed long long				   T_DWORD;    /*64-bit signed integer */
typedef  unsigned long long				T_UDWORD;   /*64-bit unsigned integer */

typedef	double						   	T_DOUBLE;
typedef  float							      T_FLOAT;

typedef  unsigned int					   T_BOOL;    /*8-bit unsigned integer */

typedef	volatile signed char			   T_VBYTE;
typedef  volatile unsigned char			T_VUBYTE;

typedef	volatile signed short			T_VHWORD;
typedef	volatile unsigned short			T_VUHWORD;

typedef	volatile signed int				T_VWORD;
typedef volatile unsigned int			   T_VUWORD;

/**********************************************
 *  When in VC enviroment:
 *    typedef volatile LONGLONG    T_VDWORD;
 *    typedef volatile ULONGLONG   T_VUDWORD;
 *
 **********************************************/

typedef volatile signed long long		T_VDWORD;
typedef volatile unsigned long long		T_VUDWORD;

typedef	volatile double					T_VDOUBLE;
typedef volatile float					   T_VFLOAT;

typedef volatile unsigned int			T_VBOOL;

#define T_VOID			void
#define T_VVOID		volatile void

#define T_MODULE		static
#define T_INLINE		T_MODULE inline
#define T_EXTERN		extern
#define T_VOLATILE	volatile
#define T_CONST		const

#ifndef TYPE2_UNNEEDED
typedef unsigned char              UINT8;      /* unsigned 8-bit  integer */
typedef unsigned short             UINT16;     /* unsigned 16-bit integer */
typedef unsigned int               UINT32;     /* unsigned 32-bit integer */
typedef unsigned long long         UINT64;     /* unsigned 64-bit integer */
typedef signed char                INT8;       /* 8-bit  signed integer */
typedef signed short               INT16;      /* 16-bit signed integer */
typedef signed int                 INT32;      /* 32-bit signed integer */
typedef signed long long           INT64;      /* 64 bit signed integer */
typedef float                      SINGLE;     /* single precision float */
typedef double                     DOUBLE;     /* double precision float */
typedef unsigned int               BOOL;       /* Boolean value   */
typedef unsigned int               boolean;
#endif


#ifndef TRUE
#define TRUE    	1
#endif

#ifndef FALSE
#define FALSE    	0
#endif

#ifndef NULL
#define NULL    	0
#endif

struct Start_Param {
	T_VOID *heap_start;
	INT32 heap_size;
	INT32 init_param;
};

#ifdef __cplusplus
}
#endif

#endif



